package web.usuarios;

import Persistencia.*;
import controladores.*;
import dominio.*;
import org.springframework.web.servlet.mvc.*;
import org.springframework.web.servlet.*;
import javax.servlet.http.*;
import org.apache.commons.logging.*;
import java.util.*;
import org.springframework.web.servlet.view.*;

/*
 * Este controlador se encarga de listar los videos y sus comentarios asociados.
 *
 */

public class ControladorListarSesionesVideo implements Controller{
    protected final Log logger = LogFactory.getLog(getClass());
    ControladorSesion controlador;
    ControladorComentarioVideo controladorCom;
    @Override

    public ModelAndView handleRequest(HttpServletRequest hsr, HttpServletResponse hsr1) throws Exception {
        String id = hsr.getParameter("id_fisio");        
        String idSes = hsr.getParameter("id_sesion");
        String tipo = hsr.getParameter("tipo");
        controladorCom = new ControladorComentarioVideo();
        controlador = new ControladorSesion();
        Map<String, Object> myModel = new HashMap<String, Object>();                     
        if(tipo!=null){            
            if(tipo.equals("subir")){
                myModel.put("id_fisio", id);
                myModel.put("id_sesion", idSes);
                return new ModelAndView("subirVideo", "model", myModel);
            }else{
                String rut=controlador.encontrarSesion(idSes).getVideo();
                if(rut!=null){
                    myModel.put("id_fisio", id);
                    myModel.put("id_sesion", idSes);
                    myModel.put("rutaVideo", rut);
                    List<Comentariovideo> list1;
                    list1=controladorCom.encontrarMisComentarios(idSes,id);
                    List<String> list2=controladorCom.getEliminarComentarios();
                    List<ComentarioVideoEliminar> list3=new ArrayList();
                    for(int i=0;i<list1.size();i++){
                        ComentarioVideoEliminar a= new ComentarioVideoEliminar();
                        a.setComent(list1.get(i));
                        a.setEliminar(list2.get(i));
                        list3.add(a);
                    }
                    myModel.put("comentarios", list3);
                    return new ModelAndView("comentarVideo", "model", myModel);
                }else{
                    myModel = new HashMap<String, Object>();
                    myModel.put("idPaciente", ""+controlador.encontrarSesion(idSes).getPaciente().getIdPaciente());
                    myModel.put("id_fisio", id);
                    if(tipo.equals("comentar"))return new ModelAndView("errorVideoFisio", "model", myModel);
                    else return new ModelAndView("errorVideo", "model", myModel);
                }
            }
        }else{
            myModel.put("id_fisio", id);
            myModel.put("sesiones", controlador.encontrarMisSesiones(id));
            return new ModelAndView("administrarSesionesVideo", "model", myModel);
        
        }
    }
}

